package com.ushine.web.utils;

import org.hibernate.service.spi.ServiceException;

import java.io.IOException;
import java.time.LocalDate;

/**
 * @Author: yls
 * @Date 2022/4/11 12:46
 * @Description: 时间工具类
 * @Version 1.0
 **/
public class DateUtils {

    /**
     * 功能描述:
     * 〈 获取当前的年月日 〉
     *
     * @return : java.time.LocalDate
     * @author : yls
     * @date : 2022/4/11 12:49
     */
    public static LocalDate getNowYearMonthDay() {
        LocalDate now = LocalDate.now();
        return now;
    }

    /**
     * 功能描述:
     * 〈 获取当前的年月日 〉
     *
     * @param year  年
     * @param month 月
     * @param day   日
     * @return : java.time.LocalDate
     * @author : yls
     * @date : 2022/4/11 12:49
     */
    public static LocalDate getLocalDate(int year, int month, int day) {
        LocalDate now = LocalDate.of(year, month, day);
        return now;
    }

    /**
     * 功能描述:
     * 〈 年月日 获取当前添加指定的天数后的日期 〉
     *
     * @param addDay    添加的天数
     * @param localDate 指定的时间：年月日
     * @return : java.time.LocalDate
     * @author : yls
     * @date : 2022/4/11 12:50
     */
    public static LocalDate getYearMonthDay(LocalDate localDate, Integer addDay) {
        if (addDay == null) {
            throw new ServiceException("添加的天数不可为null！");
        }
        if (localDate == null) {
            throw new ServiceException("指定的时间不可为null！");
        }
        return localDate.plusDays(addDay);
    }

    /**
     * 功能描述:
     * 〈 修改系统时间 〉
     *
     * @param date 年月日
     * @param time 时分秒
     * @return : void
     * @throws
     * @author : yls
     * @date : 2022/4/11 13:37
     */
    public static void updateSystemDate(String date, String time) throws IOException {
        //Windows 系统
        Runtime.getRuntime().exec("cmd /c date " + date);
        //Windows 系统
        Runtime.getRuntime().exec("cmd /c time " + time);
    }

    public void testModifyLinux() throws Exception {


    }

}
